﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using QuanLiThuVien.Source;
using QuanLiThuVien.LinkModel;

namespace QuanLiThuVien
{
	public partial class TraSach
	{
        private THUVIEN.Service1 serv = new THUVIEN.Service1();

        private InsertInfo insertInfo = new InsertInfo();
        private XuLyThem m_cXuLyThem = new XuLyThem();

        public static string m_MaPhieuTra;
        private int TienKN = 0;
        public static int TongNo;
        public int TienNo;
        private int TinhTrangSach; //tình trạng sách khi trả
        public static string m_MaPhieuPhat;

        public TraSach()
		{
			this.InitializeComponent();
            addComboboxTinhTrang();
		}

        private void addComboboxTinhTrang()
        {
            cmbTinhTrang.Items.Add("Bình Thường");
            cmbTinhTrang.Items.Add("Hỏng");
            cmbTinhTrang.Items.Add("Mất");
        }

        private void bntTsOK_Click(object sender, RoutedEventArgs e)
        {
            if (txtTSPhieuMuon.Text == "" || txtTSMaCuonSach.Text == "" || cmbTinhTrang.SelectedItem == null)
                MessageBox.Show("Chưa nhập đầy đủ thông tin", "Thông báo");
            else
            {
                if (serv.SelectTinhTrangPhieuMuon(txtTSMaCuonSach.Text, txtTSPhieuMuon.Text) == 0)
                {
                    MessageBox.Show("Cuốn sách này đã được trả", "Thông báo");
                    txtTSPhieuMuon.Text = "";
                    txtTSMaCuonSach.Text = "";
                    cmbTinhTrang.SelectedItem = null;
                }
                else if (serv.SelectTinhTrangPhieuMuon(txtTSMaCuonSach.Text, txtTSPhieuMuon.Text) == -1)
                {
                    MessageBox.Show("Kiểm tra lại mã phiếu mượn hoặc mã cuốn sách", "Thông báo");
                    txtTSPhieuMuon.Text = "";
                    txtTSMaCuonSach.Text = "";
                    cmbTinhTrang.SelectedItem = null;
                }
                else
                {
                    int Tien = TienPhat(); // tiền phạt của CTPT
                    TienKN = TienPhatKyNay(TienKN, Tien); // Tien phat ky này.

                    switch (cmbTinhTrang.SelectedItem.ToString())
                    {
                        case "Bình Thường": TinhTrangSach = 0; break;
                        case "Hỏng": TinhTrangSach = 2; break;
                        case "Mất": TinhTrangSach = 3; break;
                    }

                    serv.InsertCTPhieuTra(m_MaPhieuTra, txtTSMaCuonSach.Text, Tien, serv.SelectNgayMuon_PhieuMuon(txtTSPhieuMuon.Text), m_cXuLyThem.SoNgayMuon(serv.SelectNgayMuon_PhieuMuon(txtTSPhieuMuon.Text).ToString()), txtTSPhieuMuon.Text);

                    string m_sMaSach = serv.SelectMaSach_CuonSach(txtTSMaCuonSach.Text);
                    int m_iSoLuongSach = serv.SelectSoLuong_Sach(m_sMaSach);

                    // update lai tình trang cuốn sách là chưa mượn
                    serv.UpdateTinhTrangCuonSach(txtTSMaCuonSach.Text, TinhTrangSach);
                    serv.UpdateTinhTrangPhieuMuon(txtTSMaCuonSach.Text, txtTSPhieuMuon.Text, 0);
                    
                    //Tăng lại số sách độc giả dc mượn
                    int SoSachDangMuon = serv.SelectSoSachDangMuon_DocGia(txtTSMaDocGia.Text);
                    serv.UpdateSoSachDangMuon_DocGia(txtTSMaDocGia.Text, SoSachDangMuon - 1);

                    //update lai so luong sach trong kho
                    if (TinhTrangSach != 3) //Nếu sách không bị mất thì update lại số lượng
                        serv.UpdateSoLuong_Sach(m_sMaSach, m_iSoLuongSach + 1);
                    
                    //Hiển thị tiền phạt kỳ này.
                    txtTSTienPhat.Text = TienKN.ToString();

                    //update tien phat ky này bằng cách cộng tất cả các CT Phieu tra co cung  MaPhieuTra
                    serv.UpdateTienPhatKyNay(m_MaPhieuTra, TienKN);

                    TongNo = TienKN + TienNo;
                    //Tong tien = tien no ky nay + tien No doc gia.
                    txtTSTongNo.Text = TongNo.ToString();
                    //set hai nut thanh toan va ket thuc bang true
                    bntTSThanhToan.IsEnabled = true;
                    bntTSKetThuc.IsEnabled = true;
                }
            }
        }

        private void bntTSChapNhan_Click(object sender, RoutedEventArgs e)
        {
            if (txtTSMaDocGia.Text == "")
                MessageBox.Show("Chưa nhập mã độc giả", "Thông báo");
            else
            {
                if (serv.SelectSoSachDangMuon_DocGia(txtTSMaDocGia.Text) == 0)
                {
                    MessageBox.Show("Độc giả này chưa mượn cuốn sách nào", "Thông báo");
                    txtTSMaDocGia.Text = "";
                }
                else
                {
                    m_MaPhieuTra = insertInfo.InsertPhieuTra(txtTSMaDocGia.Text, DateTime.Now, 0, 0);
                    TienKN = 0;
                    TongNo = 0;
                    txtTSMaDocGia.IsEnabled = false;
                    txtTSMaCuonSach.IsEnabled = true;
                    txtTSPhieuMuon.IsEnabled = true;
                    cmbTinhTrang.IsEnabled = true;
                    bntTsOK.IsEnabled = true;
                    //hiển thị tiền no độc giả.
                    TienNo = serv.SelectTienNo_DocGia(txtTSMaDocGia.Text);
                    txtTSTienNo.Text = TienNo.ToString();
                    TongNo = TienNo;
                    txtTSTienPhat.Text = "";
                    txtTSTongNo.Text = TongNo.ToString();
                    txtTSTienPhat.Text = TienKN.ToString();
                    bntTSChapNhan.IsEnabled = false;
                }
            }
        }

        private void txtTSMaDocGia_TextChanged(object sender, TextChangedEventArgs e)
        {
            txtTSHoTen.Text = serv.SelectTenDocGia(txtTSMaDocGia.Text);
        }

        private int TienPhat()
        {
            int SoTien;
            //So sanh số ngày mượn phiếu mượn.
            if (m_cXuLyThem.SoNgayMuon(serv.SelectNgayMuon_PhieuMuon(txtTSPhieuMuon.Text).ToString()) > serv.SelectGiaTriThamSo("NgayMuonToiDa"))
            {
                SoTien = (m_cXuLyThem.SoNgayMuon(serv.SelectNgayMuon_PhieuMuon(txtTSPhieuMuon.Text).ToString()) - serv.SelectGiaTriThamSo("NgayMuonToiDa")) * serv.SelectGiaTriThamSo("TienPhat");
            }
            else
            {
                SoTien = 0;
            }
            return SoTien;
        }

        private int TienPhatKyNay(int m_TienPhat, int m_TienPhatThem)
        {
            m_TienPhat = m_TienPhat + m_TienPhatThem;
            return m_TienPhat;
        }

        private void bntTSThanhToan_Click(object sender, RoutedEventArgs e)
        {
            PhieuPhat m_PhieuPhat = new PhieuPhat();
            m_PhieuPhat.Show();
            txtTSMaDocGia.Text = "";
            txtTSHoTen.Text = "";
            txtTSTienNo.Text = "";
            txtTSTienPhat.Text = "";
            txtTSTongNo.Text = "";
            txtTSPhieuMuon.Text = "";
            txtTSMaCuonSach.Text = "";
            bntTSChapNhan.IsEnabled = true;
        }

        private void bntTSKetThuc_Click(object sender, RoutedEventArgs e)
        {
            serv.UpdateDocGia_TienNo(txtTSMaDocGia.Text, TongNo);
            txtTSMaDocGia.Text = "";
            txtTSPhieuMuon.Text = "";
            txtTSMaCuonSach.Text = "";
            cmbTinhTrang.SelectedItem = null;
            txtTSTienNo.Text = "";
            txtTSTienPhat.Text = "";
            txtTSTongNo.Text = "";

            //MessageBox.Show("Thành Công!", "Thông Báo");
            txtTSMaDocGia.IsEnabled = true;
            txtTSPhieuMuon.IsEnabled = false;
            txtTSMaCuonSach.IsEnabled = false;
            cmbTinhTrang.IsEnabled = false;

            bntTSChapNhan.IsEnabled = true;
            bntTsOK.IsEnabled = false;
            bntTSKetThuc.IsEnabled = false;
            bntTSThanhToan.IsEnabled = false;
        }
	}
}